package com.ruoyi.algorithm.service;

import com.ruoyi.algorithm.entity.Image;
import com.ruoyi.algorithm.entity.ImageVersion;
import com.ruoyi.algorithm.model.ImageModel;
import com.ruoyi.algorithm.model.ListImageRequestModel;
import com.beihu.sightplus.common.response.PageResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author dyk
 * @date 2021/7/8 16:43
 * @description
 */
public interface ImageService {
    boolean addImage(Image image);

    /**
     * 上传镜像
     *
     * @param file    文件
     * @param imageId 镜像id
     * @return
     */
    ImageVersion UploadImage(MultipartFile file, Long imageId);

    /**
     * 修改镜像
     *
     * @param image
     * @return
     */
    boolean updateImage(Image image);

    /**
     * 详情
     *
     * @param id
     * @return
     */
    Image detail(Long id);

    /**
     * 通过id删除镜像
     *
     * @param id
     * @return
     */
    boolean deleteImage(Long id);

    /**
     * 删除镜像版本
     *
     * @param id
     * @return
     */
    boolean deleteImageVersion(Long id);

    /**
     * 分页查询镜像版本
     *
     * @param imageId
     * @return
     */
    List<ImageVersion> listImageVersion(Long imageId);

    /**
    * 获取镜像名列表附带镜像版本tag列表
    *
    * @return List<ImageModel>
    * @see ImageModel
    */
    List<ImageModel> findImageDropDownBox();
    /**
     * 查询已删除的镜像版本
     *
     * @param imageId
     * @return
     */
    List<ImageVersion> listHistoryImageVersion(Long imageId);

    /**
     * 恢复历史历史版本
     *
     * @param id
     * @return
     */
    boolean recoverImageVersion(Long id);


    /**
     * 分页查询镜像
     * @param image
     * @return
     */
    PageResult listImage(ListImageRequestModel image);
}
